ユニバーサルフォワーダーを中継サーバーにしてSplunk Cloudにデータを送る

ユニバーサルフォワーダーを中継サーバーにしてSplunk Cloudにデータを送る

インターネットに直接出れないプライベート空間のホストからのログを中継サーバーを経由してSplunk Cloudにデータを送ってみました。
Clock Icon2025.01.07

今回やりたいこととして、ユニバーサルフォワーダー(UF) -> 中間ユニバーサルフォワーダー(IF) -> Splunk Cloud のように、一度送信したいデータを中継してSplunk Cloudに転送する構成をやってみます。

Intermediate UF.png

この構成では、プライベートネットワークなど、直接インターネットに出られない環境のホストのデータを中継ホストを経由して、Splunk Cloudまで転送する時などに検討できます。
ただし、ファンアウト構成となり、中継ホストがデータ伝送のボトルネックとなることがあるため、多数のエンドポイントからデータを中継する場合は注意が必要です。

今回、Windows OSで検証しています。Linuxベース OS でもおおよそ同じ設定になるかと思います。
それでは設定をやっていきます。

設定の流れ

  1. 中継ホスト
    1. ホスト名の確認
    2. ユニバーサルフォワーダーのインストールとSplunk Cloudとの接続認証を行う
    3. データ受信の設定を行う
    4. Windowsファイアウォールの許可
    5. IP確認
  2. データ収集対象ホスト
    1. ホスト名の確認
    2. ユニバーサルフォワーダーをインストールする(データ収集設定)
    3. 中継ホストへのデータ転送設定を行う

ではやってみます。

中継ホスト設定

ホスト名の確認

まず最初に中継ホストのホスト名を確認しておきます。
EC2AMAZ-OSNEB9N です。

## コマンドプロンプトでホスト確認
hostname
EC2AMAZ-OSNEB9N

ユニバーサルフォワーダーのインストールとSplunk Cloudとの接続認証を行う

以前のブログにあげたようにユニバーサルフォワーダーをインストールします。
下記のブログを参考にWindows OSにUFのインストールSplunk Cloudとの接続認証を行ってください。※データ収集設定も同時にやってもOKです

https://dev.classmethod.jp/articles/slug-UmuZJZaWYlej/

中継ホストから出力されるログやメトリクスが取りたい場合は、データ収集設定を行っても構いませんし、不必要であれば取らなくても構いません。

今回はインストール手順内でいくつかの項目でデータ収集を有効化しました。
データがSplunk Cloudに流れていることを確認しておきます。

## Splunk Webで以下検索
index=main host="EC2AMAZ-OSNEB9N"

Screenshot 2025-01-07 at 12.12.29.jpg

データ受信の設定を行う

次に中継ホストデータ収集対象ホストからのデータを受け取れるように設定を行います。
この設定は、C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs.confに設定を入れることで可能になります。

エディタでinputs.confファイルを新規作成、または編集します。

[splunktcp://9997]
disabled=0

コマンドプロンプトでフォワーダーのサービスを再起動します。

## サービスを再起動
"C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" restart
SplunkForwarder: Stopped

Splunk> Finding your faults, just like mom.

Checking prerequisites...
        Checking mgmt port [8089]: open
        Checking conf files for problems...
        Done
        Checking default conf files for edits...
        Validating installed files against hashes from 'C:\Program Files\SplunkUniversalForwarder\splunkforwarder-9.4.0-6b4ebe426ca6-windows-x64-manifest'
        All installed files intact.
        Done
All preliminary checks passed.

Starting splunk server daemon (splunkd)...

SplunkForwarder: Starting (pid 4564)
Done

再起動が完了したら、ポートがリッスンしているか確認します。

## コマンドプロンプトでポートを確認
netstat -an | findstr 9997
  TCP    0.0.0.0:9997           0.0.0.0:0              LISTENING

Windowsファイアウォールの許可

ポート9997をWindows OSが受け付けられるようにWindowsファイアウォールの設定を行います。

コントロールパネルを開き、設定します。

image-1736218616532.png

それぞれ以下のように設定していきます。

Screenshot 2025-01-07 at 8.36.44.jpg

image-1736218693838.png

image-1736218710664.png

image-1736218736179.png

リモートIPは、データ収集の対象ホストのIPアドレスが適切です。

image-1736218763079.png

image-1736218816564.png

image-1736218829381.png

image-1736218854567.png

IP確認

最後に次の設定手順で利用するために中継ホストのIPアドレスを確認しておきます。

## 中継ホストのIPアドレスを確認
ipconfig

Windows IP Configuration

Ethernet adapter Ethernet:

   IPv4 Address. . . . . . . . . . . : 172.31.32.133

データ収集ホストの設定

ホスト名の確認

データ収取対象ホストの方でもホスト名を確認しておきます。

## コマンドプロンプトでホスト名確認
hostname
EC2AMAZ-QBFP926

ユニバーサルフォワーダーをインストールする(データ収集設定)

前の手順と同様にユニバーサルフォワーダーをインストールし、データ収集の設定を行いますが、Splunk Cloudとの接続認証は行いません

繰り返しになりますが、下記のブログを参考にWindows OSにユニバーサルフォワーダーをインストールデータ収集設定を行ってください。

https://dev.classmethod.jp/articles/slug-UmuZJZaWYlej/

この時点では、当然ですがこのホストからのデータは収集できていないことを確認します。

Screenshot 2025-01-07 at 12.29.37.jpg

中継ホストへのデータ転送設定を行う

次にデータ収集対象ホストから中継ホストに向けてデータを送信するよう設定を行います。
この設定は、C:\Program Files\SplunkUniversalForwarder\etc\system\local\outputs.confに設定を入れることで可能になります。

設定ファイルをエディタで書き込むこともできますが、今回はCLIのコマンドで設定を行います。
コマンドプロンプトを開き、下記のように設定します。

## 下記コマンドで中継ホストのIPとポートにデータを送信するように設定
"C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" add forward-server 172.31.32.133:9997
Your session is invalid.  Please login.
Splunk username: admin
Password:
Added forwarding to: 172.31.32.133:9997.

コマンド実行後、C:\Program Files\SplunkUniversalForwarder\etc\system\local\outputs.conf に設定が書き込まれるので確認してみます。
下記の7行が書き込まれました。

[tcpout]
defaultGroup = default-autolb-group

[tcpout:default-autolb-group]
server = 172.31.32.133:9997

[tcpout-server://172.31.32.133:9997]

サービスを再起動します。

## コマンドプロンプトでサービスを再起動
"C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" restart
SplunkForwarder: Stopped

Splunk> Finding your faults, just like mom.

Checking prerequisites...
        Checking mgmt port [8089]: open
        Checking conf files for problems...
        Done
        Checking default conf files for edits...
        Validating installed files against hashes from 'C:\Program Files\SplunkUniversalForwarder\splunkforwarder-9.4.0-6b4ebe426ca6-windows-x64-manifest'
        All installed files intact.
        Done
All preliminary checks passed.

Starting splunk server daemon (splunkd)...

SplunkForwarder: Starting (pid 2488)
Done

これで設定が完了しました!
データ収集対象ホストから中継ホストを経由してSplunk Cloudにデータが届いていることを確認してみます。

## Splunk Webで以下検索
index=main host="EC2AMAZ-QBFP926"

Screenshot 2025-01-07 at 12.33.24.jpg

データが収集できていることが確認できました!

まとめ

今回、UF -> UF(IF) -> Splunk Cloud の構成でデータが送信できることを確認してみました。
本記事がどなたかの一助になれば幸いです。

Linuxベース OS でやってみたい方はユニバーサルフォワーダーのインストールなど、下記のブログを参考に読み替えていただければと思います。

https://dev.classmethod.jp/articles/slug-tjcJqqXoFGfa/

参考情報

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.